1. Field of the Invention
This invention relates generally to the field of network services. More particularly, the invention relates to an improved system and method for fault tolerant content distribution over a network.
2. Description of the Related Art
A traditional network caching system, as illustrated in FIG. 1, includes a plurality of clients 130-133 communicating over a local area network 140 and/or a larger network 110 (e.g., the Internet). The clients 130-133 may run a browser application such as Netscape Navigator(trademark) or Microsoft Internet Explorer(trademark) which provides access to information on the World Wide Web (xe2x80x9cthe Webxe2x80x9d) via the HyperText Transport Protocol (xe2x80x9cHTTPxe2x80x9d), or through other networking protocols (e.g., the File Transfer Protocol, Gopher . . . etc).
The browser on each client 130-133 may be configured so that all requests for information (e.g., Web pages) are transmitted through a local cache server 115, commonly referred to as a xe2x80x9cproxy cache.xe2x80x9d When a client 130 requests information from a remote Internet server 120, the local proxy cache 115 examines the request and initially determines whether the requested content is xe2x80x9ccacheablexe2x80x9d (a significant amount of Internet content is xe2x80x9cnon-cacheablexe2x80x9d). If the local proxy cache 115 detects a non-cacheable request, it forwards the request directly to the content source (e.g., Internet server 120). The requested content is then transmitted directly from the source 120 to the client 130 and is not stored locally on the proxy cache 115.
By contrast, when the proxy cache 115 determines that a client 130 content request is cacheable, it searches for a copy of the content locally (e.g., on a local hard drive). If no local copy exists, then the proxy cache 115 determines whether the content is stored on a xe2x80x9cparentxe2x80x9d cache 117 (located further upstream in the network relative to the Internet server 120) or a xe2x80x9csiblingxe2x80x9d cache 116 (located in substantially the same hierarchical position as the proxy cache relative to the Internet server 120 from which the content was requested).
If a cache xe2x80x9chitxe2x80x9d is detected on either neighboring cache 116, 117, the requested content is retrieved from that cache, transmitted to the client 130, and is stored locally on the proxy cache 115 to be available for future requests by other local clients 131-133. If a cache xe2x80x9cmissxe2x80x9d occurs, however, the content is retrieved from the source Internet server 120, transmitted to the client 130 and a copy is stored locally on the proxy cache 115, and possibly also the parent cache 117, to be available for future client requests.